// 权限项
export interface Permission {
  id: string;
  name: string;        // 权限名称
  code: string;        // 权限代码
  description: string; // 权限描述
}

// 角色
export interface Role {
  id: string;
  name: string;        // 角色名称
  description: string; // 角色描述
  permissions: string[]; // 权限ID列表
}

// 用户
export interface AdminUser {
  id: string;
  username: string;
  password: string;
  roles: string[];     // 角色ID列表
  status: 'active' | 'inactive';
}

// 权限代码枚举
export enum PermissionCode {
  // 系统管理
  SYSTEM_MANAGE = 'system:manage',
  USER_MANAGE = 'user:manage',
  ROLE_MANAGE = 'role:manage',
  PERMISSION_MANAGE = 'permission:manage',
  
  // 商品管理
  PRODUCT_MANAGE = 'product:manage',
  PRODUCT_CREATE = 'product:create',
  PRODUCT_EDIT = 'product:edit',
  PRODUCT_DELETE = 'product:delete',
  
  // 分类管理
  CATEGORY_MANAGE = 'category:manage',
  CATEGORY_CREATE = 'category:create',
  CATEGORY_EDIT = 'category:edit',
  CATEGORY_DELETE = 'category:delete',
  
  // 订单管理
  ORDER_MANAGE = 'order:manage',
  ORDER_VIEW = 'order:view',
  ORDER_EDIT = 'order:edit',
  
  // 用户管理（前台用户）
  CUSTOMER_MANAGE = 'customer:manage',
  CUSTOMER_VIEW = 'customer:view',
  CUSTOMER_EDIT = 'customer:edit',
}

// Mock 权限数据
export const MOCK_PERMISSIONS: Permission[] = [
  {
    id: '1',
    name: '系统管理',
    code: PermissionCode.SYSTEM_MANAGE,
    description: '系统管理权限'
  },
  {
    id: '2',
    name: '用户管理',
    code: PermissionCode.USER_MANAGE,
    description: '后台用户管理权限'
  },
  {
    id: '3',
    name: '角色管理',
    code: PermissionCode.ROLE_MANAGE,
    description: '角色管理权限'
  },
  {
    id: '4',
    name: '权限管理',
    code: PermissionCode.PERMISSION_MANAGE,
    description: '权限管理权限'
  },
  {
    id: '5',
    name: '商品管理',
    code: PermissionCode.PRODUCT_MANAGE,
    description: '商品管理权限'
  },
  {
    id: '6',
    name: '创建商品',
    code: PermissionCode.PRODUCT_CREATE,
    description: '创建商品权限'
  },
  {
    id: '7',
    name: '编辑商品',
    code: PermissionCode.PRODUCT_EDIT,
    description: '编辑商品权限'
  },
  {
    id: '8',
    name: '删除商品',
    code: PermissionCode.PRODUCT_DELETE,
    description: '删除商品权限'
  },
  {
    id: '15',
    name: '分类管理',
    code: PermissionCode.CATEGORY_MANAGE,
    description: '分类管理权限'
  },
  {
    id: '16',
    name: '创建分类',
    code: PermissionCode.CATEGORY_CREATE,
    description: '创建分类权限'
  },
  {
    id: '17',
    name: '编辑分类',
    code: PermissionCode.CATEGORY_EDIT,
    description: '编辑分类权限'
  },
  {
    id: '18',
    name: '删除分类',
    code: PermissionCode.CATEGORY_DELETE,
    description: '删除分类权限'
  },
  {
    id: '9',
    name: '订单管理',
    code: PermissionCode.ORDER_MANAGE,
    description: '订单管理权限'
  },
  {
    id: '10',
    name: '查看订单',
    code: PermissionCode.ORDER_VIEW,
    description: '查看订单权限'
  },
  {
    id: '11',
    name: '编辑订单',
    code: PermissionCode.ORDER_EDIT,
    description: '编辑订单权限'
  },
  {
    id: '12',
    name: '客户管理',
    code: PermissionCode.CUSTOMER_MANAGE,
    description: '客户管理权限'
  },
  {
    id: '13',
    name: '查看客户',
    code: PermissionCode.CUSTOMER_VIEW,
    description: '查看客户权限'
  },
  {
    id: '14',
    name: '编辑客户',
    code: PermissionCode.CUSTOMER_EDIT,
    description: '编辑客户权限'
  }
];

// Mock 角色数据
export const MOCK_ROLES: Role[] = [
  {
    id: '1',
    name: '超级管理员',
    description: '系统超级管理员，拥有所有权限',
    permissions: MOCK_PERMISSIONS.map(p => p.id)
  },
  {
    id: '2',
    name: '商品管理员',
    description: '负责商品管理',
    permissions: ['5', '6', '7', '8'] // 商品相关权限
  },
  {
    id: '3',
    name: '订单管理员',
    description: '负责订单管理',
    permissions: ['9', '10', '11'] // 订单相关权限
  },
  {
    id: '4',
    name: '分类管理员',
    description: '负责分类管理',
    permissions: ['15', '16', '17', '18'] // 分类相关权限
  }
];

// Mock 用户数据
export const MOCK_USERS: AdminUser[] = [
  {
    id: '1',
    username: 'admin',
    password: 'admin123',
    roles: ['1'], // 超级管理员
    status: 'active'
  },
  {
    id: '2',
    username: 'product_admin',
    password: 'product123',
    roles: ['2'], // 商品管理员
    status: 'active'
  },
  {
    id: '3',
    username: 'order_admin',
    password: 'order123',
    roles: ['3'], // 订单管理员
    status: 'active'
  },
  {
    id: '4',
    username: 'category_admin',
    password: 'category123',
    roles: ['4'], // 分类管理员
    status: 'active'
  }
]; 